--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
libs/able/examples/mtu.py 1.9.5 (6c9e11e3) Text, 1.61 KB
T8b949e"""Request MTU change, and write 100 bytes to a characteristic."""
Tff7b72from T7ee787kivyT7ee787.T7ee787app Tff7b72import Te6edf3App
Tff7b72from T7ee787kivyT7ee787.T7ee787clock Tff7b72import Te6edf3Clock
Tff7b72from T7ee787kivyT7ee787.T7ee787logger Tff7b72import Te6edf3Logger
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787widget Tff7b72import Te6edf3Widget
Tff7b72from T7ee787able Tff7b72import Te6edf3BluetoothDispatcherTb4b4b4, Te6edf3GATT_SUCCESS
Tff7b72class T56d364BLESenderTb4b4b4(Te6edf3BluetoothDispatcherTb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffcharacteristic_to_write Tff7b72= Tff7b72None
Te6edf3ClockTff7b72.Td2a8ffschedule_onceTb4b4b4(Tff7b72selfTff7b72.Td2a8ffconnectTb4b4b4, T79c0ff0Tb4b4b4)
Tff7b72def Td2a8ffconnectTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3_Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffconnect_by_device_addressTb4b4b4(Ta5d6ff"Ta5d6ffFF:FF:FF:FF:FF:FFTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffon_connection_state_changeTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3statusTb4b4b4, Te6edf3stateTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3status Tff7b72== Te6edf3GATT_SUCCESS Tff7b72and Te6edf3stateTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffdiscover_servicesTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffon_servicesTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3statusTb4b4b4, Te6edf3servicesTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3status Tff7b72== Te6edf3GATT_SUCCESSTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffcharacteristic_to_write Tff7b72= Te6edf3servicesTff7b72.Td2a8ffsearchTb4b4b4(Ta5d6ff"Ta5d6ff0d03Ta5d6ff"Tb4b4b4)
T8b949e# Need to request 100 + 3 extra bytes for ATT packet header
Tff7b72selfTff7b72.Td2a8ffrequest_mtuTb4b4b4(T79c0ff103Tb4b4b4)
Tff7b72def Td2a8ffon_mtu_changedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3mtuTb4b4b4, Te6edf3statusTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3status Tff7b72== Te6edf3GATT_SUCCESS Tff7b72and Te6edf3mtu Tff7b72== T79c0ff103Tb4b4b4:
Te6edf3LoggerTff7b72.Td2a8ffinfoTb4b4b4(Ta5d6ff"Ta5d6ffMTU changed: now it is possible to send 100 bytes at onceTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwrite_characteristicTb4b4b4(Tff7b72selfTff7b72.Td2a8ffcharacteristic_to_writeTb4b4b4, Tffa657rangeTb4b4b4(T79c0ff100Tb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3LoggerTff7b72.Td2a8fferrorTb4b4b4(Ta5d6ff"Ta5d6ffMTU not changed: mtu=Tffd700%dTa5d6ff, status=Tffd700%dTa5d6ff"Tb4b4b4, Te6edf3mtuTb4b4b4, Te6edf3statusTb4b4b4)
Tff7b72def Td2a8ffon_characteristic_writeTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3characteristicTb4b4b4, Te6edf3statusTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3status Tff7b72== Te6edf3GATT_SUCCESSTb4b4b4:
Te6edf3LoggerTff7b72.Td2a8ffinfoTb4b4b4(Ta5d6ff"Ta5d6ffCharacteristic write succeedTa5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3LoggerTff7b72.Td2a8fferrorTb4b4b4(Ta5d6ff"Ta5d6ffWrite status: Tffd700%dTa5d6ff"Tb4b4b4, Te6edf3statusTb4b4b4)
Tff7b72class T56d364MTUAppTb4b4b4(Te6edf3AppTb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffbuildTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3BLESenderTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3WidgetTb4b4b4(Tb4b4b4)
Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff'Ta5d6ff__main__Ta5d6ff'Tb4b4b4:
Te6edf3MTUAppTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffrunTb4b4b4(Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────